// 测试1387物品使用功能
// 测试大将军令使用，生成副将

const WebSocket = require('ws');

// 测试配置
const WS_URL = 'ws://localhost:3000/user-service/websocket?t=test_token_123';

// 测试不同的物品ID
const TEST_ITEMS = [
    { id: 63, name: "大将军令" },
    { id: 331, name: "大将军令(绑)" },
    { id: 62, name: "将军令" },
    { id: 141, name: "将军令(绑)" }
];

// 选择第一个物品进行测试
const TEST_ITEM = TEST_ITEMS[0];
const TEST_MESSAGE = {
    c: 1387,
    d: {
        gid: TEST_ITEM.id
    }
};

console.log('🧪 开始测试1387物品使用功能...');
console.log(`🎯 测试物品: ${TEST_ITEM.name} (ID: ${TEST_ITEM.id})`);
console.log('📋 测试指令:', JSON.stringify(TEST_MESSAGE, null, 2));

// 创建WebSocket连接
const ws = new WebSocket(WS_URL);

ws.on('open', function open() {
    console.log('✅ WebSocket连接已建立');

    // 发送测试消息
    console.log('📤 发送测试消息...');
    ws.send(JSON.stringify(TEST_MESSAGE));
});

ws.on('message', function message(data) {
    try {
        const response = JSON.parse(data.toString());
        console.log('📥 收到响应:', JSON.stringify(response, null, 2));

        // 分析响应
        if (response.act_id === 1387) {
            if (response.code === 0) {
                console.log('🎉 物品使用成功!');
                if (response.data && response.data.deputy) {
                    console.log('🎖️ 生成的副将信息:');
                    console.log('   - 副将ID:', response.data.deputy.deputy_id);
                    console.log('   - 副将类型:', response.data.typeName);
                    console.log('   - 基础ID:', response.data.deputy.base_id);
                }
            } else {
                console.log('❌ 物品使用失败:', response.msg);
            }
        } else {
            console.log('📨 收到其他消息:', response.act_id, response.msg || '');
        }
    } catch (error) {
        console.error('❌ 解析响应失败:', error);
        console.log('📥 原始响应:', data.toString());
    }
});

ws.on('error', function error(err) {
    console.error('❌ WebSocket错误:', err);
});

ws.on('close', function close() {
    console.log('🔌 WebSocket连接已关闭');
});

// 设置超时
setTimeout(() => {
    console.log('⏰ 测试超时，关闭连接');
    ws.close();
}, 10000);

console.log('⏳ 等待响应...');
